package com.yingxin.yx.framework.commons.utlis;

import org.apache.commons.lang3.StringUtils;

/**
 * 字符串工具类
 */

public class StringTool {

    /**
     * 按照指定位数拆分字符串 塞入 换行符
     * @param content 内容
     * @param digit 位数
     * @return
     */
    public static String split(String content, Integer digit){
        if( StringUtils.isEmpty( content ) ){
            return "";
        }
        StringBuffer result = new StringBuffer();
        for( int i = 0; i <= content.length(); i += digit ){
            if( i + digit <= content.length() ){
                 result.append( content.substring( i, i+digit ) );
                 result.append("<br>");
            }else {
                result.append( content.substring( i ) );
            }
        }
        return result.toString();
    }

    /**
     * 截取前20个汉字
     */
    public static String cutFirst20ChineseCharacters(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }

        int length = 0;
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (isChineseCharacter(c)) {
                length += 2; // 假设一个汉字占2个字节
                if (length > 40) { // 40是20个汉字的字节长度
                    return input.substring(0, i);
                }
            } else {
                length++;
                if (length > 40) {
                    return input.substring(0, i);
                }
            }
        }
        return input;
    }

    private static boolean isChineseCharacter(char c) {
        // 汉字字符的Unicode范围
        return c >= 0x4E00 && c <= 0x9FA5;
    }

}
